A communication network includes paths of nodes that route packets through the network. The paths between nodes may include one or more circuits. As modern communication applications require ever-increasing amounts of data, communication networks are required to handle increasingly sophisticated data loads. These data loads may require real-time allocation of network resources as higher priority applications vie for scarce bandwidth. Additionally, the increasing desirability of real-time data communication adds to the data load while raising difficulties in adapting to the ever-changing bandwidth requirements of such applications. Further, as more and more computing applications move from localized computing resources to network-dependent, “cloud” computing, the effect of dynamic bandwidth requirements require increasingly adaptive methods of allocating network resources. The large amounts of data required by these types of applications may require a dedicated, point-to-point path rather than the distributed, packet-based approach offered by the traditional internet architecture.
One current method of dynamically allocating network resources is dynamic circuit switching. With dynamic circuit switching, the circuits between nodes of a communication network are not prepared for communication until the communication path is required. When a high-bandwidth application requires a high-availability connection, a circuit, or dedicated communication path, can be prepared between two nodes to facilitate that communication.
Among other disadvantages of current methods of dynamically allocating network resources, dynamic circuit switching may not be flexible enough to accommodate massive, diversified data requests across multiple sites. For instance, communication between multiple datacenters that includes multiple types of data requests may not be able to be efficiently accommodated. Additionally, dynamic circuit switching may only provision one circuit at a time, based on the received request. Further, current methods of dynamically allocating network resources may only schedule a group of circuits between a first source node and a first destination node at one time before then scheduling a group of circuits between a second source node and a second destination node.